home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 28
/
Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso
/
Aminet
/
dev
/
lang
/
fpcsrc.lha
/
fpc
/
compiler
/
systems.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1998-09-24
|
16KB
|
551 lines
{
$Id: systems.pas,v 1.2.2.3 1998/08/18 13:40:10 carl Exp $
Copyright (C) 1995,97 by Florian Klaempfl
This unit contains informations about the target systems supported
(these are not processor specific)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
****************************************************************************
}
unit systems;
interface
type
{ target operanting system }
ttarget = (target_GO32V1,target_OS2,target_LINUX,
target_WIN32,target_GO32V2,
target_Amiga,target_Atari,target_Mac68k,
target_PalmOS);
tendian = (endian_little,en_big_endian);
ttargetinfo = record
target : ttarget;
target_name : string[30];
short_name : string[8];
unit_env : string[20];
system_unit : string[8];
exeext,
objext,
dllext,
unitext,
libext,
asmext,
sourceext,
pasext : string[4];
newline : string[3];
labelprefix : string[2];
Cprefix : string[2];
use_function_relative_addresses : boolean;
endian : tendian;
end;
tsourceinfo = record
source:ttarget;
source_name:string[30];
exeext,
scriptext : string[4];
endian : tendian;
end;
var
source_info : tsourceinfo;
target_info : ttargetinfo;
function set_string_target(const s : string) : boolean;
implementation
const
target_infos : array[ttarget] of ttargetinfo = (
(
target : target_GO32V1;
target_name : 'GO32 V1 DOS extender';
short_name : 'GO32V1';
unit_env : 'GO32V1UNITS';
system_unit : 'SYSTEM';
exeext : '';
objext : '.O1';
dllext : '.DLL';
unitext : '.PP1';
libext : '.PPL';
asmext : '.S1';
sourceext : '.PP';
pasext : '.PAS';
newline : #13#10;
labelprefix : '.L';
Cprefix : '_';
use_function_relative_addresses : true;
endian : endian_little
),
(
target : target_OS2;
target_name : 'OS/2 (32 bit)';
short_name : 'OS2';
unit_env : 'OS2UNITS';
system_unit : 'SYSOS2';
exeext : '.exe';
objext : '.oo2';
dllext : '.dll';
unitext : '.ppo';
libext : '.ppl';
asmext : '.so2';
sourceext : '.pas';
pasext : '.pp';
newline : #13#10;
labelprefix : 'L';
Cprefix : '_'; {???}
use_function_relative_addresses : true;
endian : endian_little
),
(
target : target_LINUX;
target_name : 'Linux';
short_name : 'LINUX';
unit_env : 'LINUXUNITS';
system_unit : 'syslinux';
exeext : '';
objext : '.o';
dllext : '.so';
unitext : '.ppu';
libext : '.ppl';
asmext : '.s';
sourceext : '.pp';
pasext : '.pas';
newline : #10;
labelprefix : '.L';
Cprefix : '';
use_function_relative_addresses : true;
endian : endian_little
),
(
target : target_WIN32;
target_name : 'Win32';
short_name : 'WIN32';
unit_env : 'WIN32UNITS';
system_unit : 'SYSWIN32';
exeext : '.exe';
objext : '.o';
dllext : '.dll';
unitext : '.ppw';
libext : '.ppl';
asmext : '.s';
sourceext : '.pp';
pasext : '.pas';
newline : #13#10;
labelprefix : '.L';
Cprefix : '_'; {???}
use_function_relative_addresses : true; {????}
endian : endian_little
),
(
target : target_GO32V2;
target_name : 'GO32 V2.0 DOS extender';
short_name : 'GO32V2';
unit_env : 'GO32V2UNITS';
system_unit : 'SYSTEM';
exeext : '.EXE';
objext : '.O';
dllext : '.DLL';
unitext : '.PPU';
libext : '.PPL';
asmext : '.S';
sourceext : '.PP';
pasext : '.PAS';
newline : #13#10;
labelprefix : '.L';
Cprefix : '_'; {???}
use_function_relative_addresses : true;
endian : endian_little
),
(
target : target_Amiga;
target_name : 'Commodore Amiga';
short_name : 'AMIGA';
unit_env : '';
system_unit : 'sysamiga'; { case sensitive }
exeext : '';
objext : '.o';
dllext : '.library';
unitext : '.ppa';
libext : '.ppl';
asmext : '.asm';
sourceext : '.pp';
pasext : '.pas';
newline : #10;
labelprefix : '.L';
Cprefix : '_'; {???}
use_function_relative_addresses : true;
endian : endian_little
),
(
target : target_Atari;
target_name : 'Atari ST/STE';
short_name : 'ATARI';
unit_env : '';
system_unit : 'SYSATARI';
exeext : '.ttp';
objext : '.o';
dllext : '.dll';
unitext : '.PPT';
libext : '.PPL';
asmext : '.s';
sourceext : '.pp';
pasext : '.pas';
newline : #13#10;
labelprefix : '.L';
Cprefix : '_'; {???}
use_function_relative_addresses : true;
endian : endian_little
),
(
target : target_Mac68k;
target_name : 'Macintosh m68k';
short_name : 'MAC OS';
unit_env : '';
system_unit : 'sysmac'; { case sensitive }
exeext : '';
objext : '.o';
dllext : '.dll';
unitext : '.ppm';
libext : '.ppl';
asmext : '.asm';
sourceext : '.pp';
pasext : '.pas';
newline : #13;
labelprefix : '__L';{ only ascii A..Z,a..z or _ allowed as first }
Cprefix : ''; {???}
use_function_relative_addresses : true;
endian : endian_little
),
(
target : target_PalmOS;
target_name : 'PalmOS';
short_name : 'PALMOS';
unit_env : '';
system_unit : 'SYSPALM';
exeext : '.prc';
objext : '.o';
dllext : '.dll';
unitext : '.PPU';
libext : '.PPL';
asmext : '.s';
sourceext : '.pp';
pasext : '.pas';
newline : #13#10;
labelprefix : '.L';
Cprefix : '';
use_function_relative_addresses : true;
endian : endian_little
)
);
source_infos : array[ttarget] of tsourceinfo = (
(
source : target_GO32V1;
source_name : 'GO32 V1 DOS extender';
exeext : '.EXE';
scriptext : '.BAT';
endian : endian_little
),